#include "ManejadorAdministrador.h"
using namespace Manejadores;

ManejadorAdministrador::ManejadorAdministrador() {
	Configuracion* config = config->getInstancia();
	string pathDeDatos = config->getNombreArchivoAdministrador();
	this->administrador = new ArchivoDeEstructurasVariables(pathDeDatos);
	this->indicePorUnicidad = new HashExtensible("IndicePorUnicidadConteo");
}

Administrador* ManejadorAdministrador::recuperar(string usuarioAdmin){
	IRegistroIndice* registro = this->indicePorUnicidad->buscar(usuarioAdmin);
	if (registro->getOffsets()->size() > 0){
		Administrador* admin = new Administrador();
		administrador->leer(admin, registro->getOffsets()->at(0));
		delete registro;
		return admin;
	}else{
		delete registro;
		return NULL;
	}
}

ManejadorAdministrador::~ManejadorAdministrador() {
	delete this->administrador;
	delete this->indicePorUnicidad;
}
